In conventional router architectures, there is close integration of the forwarding and control plane implementations. In a typical router, a group of forwarding elements and a switch fabric are controlled by control plane software running on a controller card in the same chassis or on a co-located chassis. The forwarding elements are statically associated with the control elements that run the control plane software. The control processors implementing control plane functions are collocated with the line cards that implement forwarding functions and often share the same router backplane. Communication between the control processors and the forwarding line card is not based on any standards-based mechanism, making it impossible to interchange control processors and forwarding elements from different suppliers. This also leads to a static binding between forwarding elements and line cards. A route typically has at most two controllers (live and stand-by) running control plane software. Each line card is statically bound to these two controllers. The two controllers, the line cards to which they are statically bound, and the switch fabric together constitute the router.
There is a need for a new router architecture that disaggregates the forwarding and control planes and dynamically associates forwarding elements and control elements.